import request from '@/utils/request'


/**
 * 分页查询考试组中的成绩列表
 * @param {Object} params 查询参数
 * @param {number} params.groupId 考试组ID
 * @param {number} [params.type] 1-考试 2-测评 3-作业
 * @param {string} [params.searchKey] 搜索关键词
 * @param {number} [params.page] 页码
 * @param {number} [params.limit] 每页数量
 */
export function fetchScoreList(params) {
  return request({
    url: '/score/list',
    method: 'get',
    params
  })
}
/**
 * 获取考试统计概览
 * @param {number} examId 考试ID
 */
export function getExamSummary(examId) {
  return request({
    url: `/score/summary/${examId}`,
    method: 'get'
  })
}

/**
 * 获取题目统计列表
 * @param {number} examId 考试ID
 */
export function getQuestionStats(examId) {
  return request({
    url: `/score/question/stats/${examId}`,
    method: 'get'
  })
}

/**
 * 分页查询考生成绩列表
 * @param {number} examId 考试ID
 * @param {Object} params 分页和查询参数
 */
export function getTeacherScores(examId, params) {
  console.log("examId",examId)
  console.log("params",params)
  return request({
    url: `/score/teacher/list/${examId}`,
    method: 'get',
    params
  })
}

/**
 * 获取学生考试详情
 * @param {number} recordId 考试记录ID
 */
export function getTeacherExamDetail(recordId) {
  return request({
    url: `/score/teacher/detail/${recordId}`,
    method: 'get'
  })
}

// 获取学生考试统计信息
export function getTeacherExamStatistics(recordId) {
  return request({
    url: `/score/teacher/statistics/${recordId}`,
    method: 'get'
  })
}

/**
 * 获取题目详情
 * @param {number} questionId 题目ID
 */
export function getQuestionDetail(questionId) {
  return request({
    url: `/score/question/detail/${questionId}`,
    method: 'get'
  })
}

/**
 * 获取学生答案
 * @param {Object} params 查询参数
 * @param {number} [params.questionId] 题目ID（按题目批改时使用）
 * @param {number} [params.recordId] 考试记录ID（按学生批改时使用）
 * @param {number} [params.examId] 考试ID（按题目批改时使用）
 */
export function getTeacherAnswer(params) {
  return request({
    url: '/score/teacher/answer',
    method: 'get',
    params
  })
}

/**
 * 获取学生答案
 * @param {Object} params 查询参数
 * @param {number} [params.questionId] 题目ID（按题目批改时使用）
 * @param {number} [params.recordId] 考试记录ID（按学生批改时使用）
 * @param {number} [params.examId] 考试ID（按题目批改时使用）
 */
export function getTeacherAnswerRecord(params) {
  return request({
    url: '/score/teacher/answer/record',
    method: 'get',
    params
  })
}

/**
 * 人工批改题目
 * @param {Object} data 批改数据
 * @param {number} data.examId 考试ID
 * @param {number} data.recordId 考试记录ID
 * @param {number} data.answerId 作答记录ID
 * @param {number} data.questionId 题目ID
 * @param {number} data.score 得分
 * @param {string} data.comment 评语
 */
export function manualCorrect(data) {
  return request({
    url: '/score/manual/correct',
    method: 'post',
    data
  })
}

/**
 * 获取待批改题目列表
 * @param {number} examId 考试ID
 */
export function getManualCorrectQuestions(examId) {
  return request({
    url: `/score/manual/todo/${examId}`,
    method: 'get'
  })
}

/**
 * 获取待批改学生列表
 * @param {number} examId 考试ID
 */
export function getManualCorrectStudents(examId) {
  return request({
    url: `/score/manual/students/${examId}`,
    method: 'get'
  })
}

/**
 * 发布成绩
 * @param {number} examId 考试ID
 */
export function publishScore(examId) {
  return request({
    url: `/score/publish/${examId}`,
    method: 'post'
  })
}

/**
 * 获取申诉列表
 * @param {number} examId 考试ID
 */
export function getAppealList(examId) {
  return request({
    url: `/score/appeal/list/${examId}`,
    method: 'get'
  })
}

/**
 * 处理申诉
 * @param {Object} data 申诉处理数据
 * @param {number} data.appealId 申诉ID
 * @param {number} data.examId 考试ID
 * @param {number} data.recordId 考试记录ID
 * @param {number} data.answerId 作答记录ID
 * @param {number} [data.adjustScore] 调整分数
 * @param {string} data.handleResult 处理结果
 */
export function handleAppeal(data) {
  return request({
    url: '/score/appeal/handle',
    method: 'post',
    data
  })
}


/**
 * 获取学生成绩列表
 * @param {Object} params 查询参数
 * @param {number} params.groupId 考试组ID
 * @param {number} params.pageNum 页码
 * @param {number} params.pageSize 每页数量
 */
export function getStudentScores(params) {
  return request({
    url: '/score/student/list',
    method: 'get',
    params
  })
}

/**
 * 获取成绩详情
 * @param {number} recordId 考试记录ID
 */
export function getScoreDetail(recordId) {
  return request({
    url: `/score/student/detail/${recordId}`,
    method: 'get'
  })
}

/**
 * 提交成绩申诉
 * @param {Object} data 申诉数据
 * @param {number} data.recordId 考试记录ID
 * @param {number} data.questionId 题目ID
 * @param {string} data.content 申诉内容
 */
export function submitAppeal(data) {
  return request({
    url: '/score/student/appeal',
    method: 'post',
    data
  })
}

